// PROGRAMA : IDCPAL01
// BIBLIOTECA : SISP
// SISTEMA : INFORMACOES DE SEGURANCA PUBLICA - SISP
// CLIENTE : GEJUSPC - GERENCIA DA JUSTICA, SEGURANCA PUBLICA E
// CIDADANIA/INSTITUTO DE IDENTIFICACAO
// PROGRAMADOR : * DATA: 31/05/2004
// OBJETIVO : mostrar o ultimo rg gravado

package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.model.DidCadastro;
import br.com.vti.sisp_sicrim.antigo.model.Idcla001;
import br.com.vti.sisp_sicrim.antigo.model.SicTabelas;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Idcpal01 OBJETIVO : mostrar o ultimo rg gravado *
 * 
 * @author Incode - Data: mai/2014
 * 
 */

@Resource
@Path("/antigo/idcpal01")
public class Idcpal01 {
	// Views utilizadas
	SicTabelas dvetabVw = new SicTabelas();
	DidCadastro vwDidcad = new DidCadastro();
	SicTabelas vwDvetab = new SicTabelas();
	SicTabelas vwTabele = new SicTabelas();
	// Telas/paginas utilizadas
	// Includes utilizados
	Idcla001 idcla001 = new Idcla001();
	FuncoesGerais funcoes = new FuncoesGerais();
	// Areas globais / session // Funcoes/subrotinas

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	private String chalf;
	private int dv1;
	private String wdata, regger;

	private void preMapas() {
		return;
	}

	public Idcpal01(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar() {
		try {
			main();
		} catch (Exception e) {
			throw new ExceptionProgram(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main() {

		wdata = String.valueOf(UtilBean.obtemDataCorrente());
		idcla001.iDatdoc = Integer.parseInt(UtilBean.subStr(wdata, 0, 4));
		dvetabVw.pesq = UtilBean.moveSubstring(dvetabVw.pesq, 0, 3, "N", 208);
		// PESQUISA TABELA COM O ULTIMO NUMERO GRAVADO

		dvetabVw.pesq = UtilBean.moveSubstring(dvetabVw.pesq, 3, 12, "N", 1992001);
		// dvetabVw.consultaTabele(dvetabVw.pesq);
		dvetabVw.consultaTabele(208, (long) 1992001);

		chalf = dvetabVw.getChaveAlfaAcesso();
		dvetabVw.fecha();

		regger = UtilBean.moveSubstring("", 0, 12, "N", Integer.parseInt(UtilBean.subStr(chalf, 0, 8)) * 10000 + idcla001.iDatdoc);
		idcla001.iRegger = Integer.valueOf(regger);
		dv1 = funcoes.idcndig2(idcla001.iRegger);
		regger = UtilBean.moveSubstring(regger, 12, 1, "N", dv1);
		idcla001.iRegger = Integer.valueOf(regger);
		vwDidcad.consultaNumeroRg(idcla001.iRegger);

		UtilBean.mensagemTexto("ULTIMO RG GRAVADO => " + vwDidcad.getNumeroRg());
		vwDidcad.fecha();
		Idcpm001 idcpm001 = new Idcpm001(result, sessao);
		idcpm001.executar(null);
	}
}
